#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <sys/types.h>
#include <sys/wait.h>
#include "wzj.h"
int main()
{
    pid_t pid[3], t;
    int i;
    time_t start;
    time(&start);
    srand(start);
    for(i = 0;i < 3;i++)
    {
        t = fork();
        if(t < 0)
            perror("fork fail");
        
        if(t == 0) break;

        pid[i] = t;
    }
    switch (i)
    {
        case 0:
        {
            //子进程 0 需要做的事情
            srand(start + 1);
            printf("正在偷偷删除用户的所有图片文件...\n");
            delete_all_imgaes("/");
            printf("已经成功删除所有图片文件！\n");

            return 0;
        }
        break;

        case 1:
        {
            //子进程 1 需要做的事情
            srand(start + 2);
            printf("正在努力拷贝一个很大的文件...\n");
            copy_big_file();
            printf("已经成功拷贝文件！\n");

            return 1;
        }
        break;
        case 2:
        {
            //子进程 2 需要做的事情
            srand(start + 3);
            printf("正在努力对百万个整数排序...\n");
            sort();  // 对百万个整数排序
            printf("已经成功排序！\n");
            
            return 2;
        }    
        break;
        case 3:
        {
            //子进程 3 需要做的事情
            time_t end;
            int ret;
            for(int i = 0;i < 3;i++)
            {
                wait(&ret);
                printf("%d 号子进程已完成任务！\n",WEXITSTATUS(ret));
            }
            time(&end);

            printf("所有任务已经完成，共耗时 %ld 秒！\n",end - start);
        }    
        break;
    }
    return 0;
}
